package demo.quartz.jobs;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Spring Scheduled示例
 */
@Component
public class ScheduledTask {

    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    private Integer count1 = 1;
    private Integer count2 = 1;
    private Integer count3 = 1;

    @Scheduled(fixedRate = 5000)
    // 该方法某一次执行开始后，开始计算时间，当时间达到5秒，就开始再次执行该方法。
    public void method_Rate() throws InterruptedException {
        System.out.println(String.format("method_Rate 第"+count1+++"次执行，当前时间为："+ dateFormat.format(new Date())));
    }

    @Scheduled(fixedDelay = 5000)
    // 该方法某一次执行结束后，开始计算时间，当时间达到5秒，就开始再次执行该方法。
    public void method_Delay() throws InterruptedException {
        System.out.println(String.format("method_Delay 第"+count2+++"次执行，当前时间为："+ dateFormat.format(new Date())));
    }

    @Scheduled(cron = "0 0/10 * * * *")
    // 每隔10秒执行一次。
    public void method_Cron() throws InterruptedException {
        System.out.println(String.format("method_Cron 第"+count3+++"次执行，当前时间为："+ dateFormat.format(new Date())));
    }
}